package com.noble.imui.chatinput.listener;


import com.noble.imui.chatinput.model.FileItem;

import java.util.List;

/**
 * Menu items' callbacks
 */
public interface OnMenuClickListener {

    /**
     * 输入框输入文字后，点击发送按钮事件
     */
    boolean onSendTextMessage(CharSequence input);

    /**
     * 选中文件或者录制完视频后，点击发送按钮触发此事件
     */
    void onSendFiles(List<FileItem> list);

    /**
     * 发送视频聊天
     */
    void onSendVideo();

    /**
     * 发送语音聊天
     */
    void onSendVoice();

    /**
     * 点击语音按钮触发事件，显示录音界面前触发此事件，返回 true 表示使用默认的界面，若返回 false 应该自己实现界面
     */
    boolean switchToMicrophoneMode();

    /**
     * 点击图片按钮触发事件，显示图片选择界面前触发此事件， 返回 true 表示使用默认的界面
     */
    boolean switchToGalleryMode();

    /**
     * 点击拍照按钮触发事件，显示拍照界面前触发此事件， 返回 true 表示使用默认的界面
     */
    boolean switchToCameraMode();

    /**
     * Fires when emoji button is on click.
     */
    boolean switchToEmojiMode();
}